/*
 * @Description: 租户配置管理
 * @Author: DSY
 * @Date: 2022-12-30 16:00:28
 * @LastEditors: DHL
 * @LastEditTime: 2023-01-06 09:47:04
 */

import { defineComponent, reactive, ref, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { arraySerializeToStr } from '/@/utils/twUtils'
import { usePermission } from '/@/hooks/web/permission'
import { TenantConfigModel } from '/@/api/system/model/tenantConfigModel'
import { apiTenantConfigLogicBatchDeleteByIds } from '/@/api/system/tenantConfig'
import tenantConfigWxMp from './formWxMp.vue'
import tenantConfigWxCp from './formWxCp.vue'
import tenantConfigPayWx from './formPayWx.vue'
import tenantConfigPayAli from './formPayAli.vue'

export default defineComponent({
  name: 'TenantConfig',
  components: { tenantConfigWxMp, tenantConfigWxCp, tenantConfigPayWx, tenantConfigPayAli },
  setup(props) {
    //////////////////////////////////////////////////
    // 属性
    //////////////////////////////////////////////////

    const loading = ref(false)

    // 权限控制
    const { hasPermission } = usePermission()

    /**
     * 公共
     */
    const state = reactive({})

    //////////////////////////////////////////////////
    // 函数
    //////////////////////////////////////////////////

    /**
     * 批量删除
     */
    function handleDelete(row?: TenantConfigModel) {
      ElMessageBox.confirm(`此操作将删除条记录, 是否继续?`, '删除提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      })
        .then(() => {
          loading.value = true
          const ids = arraySerializeToStr([], 'id')
          apiTenantConfigLogicBatchDeleteByIds(ids)
            .then((result) => {
              if (result?.success) {
                ElMessage.success(result.message)
              } else {
                ElMessage.error(result?.message)
              }
            })
            .catch(() => {})
            .finally(() => {
              loading.value = false
            })
        })
        .catch(() => {
          ElMessage.info('删除被取消了')
        })
    }

    //////////////////////////////////////////////////
    // 微信公众号
    //////////////////////////////////////////////////
    const tenantConfigWxMpRef = ref()
    function handleOpenWxMp() {
      tenantConfigWxMpRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 微信企业号
    //////////////////////////////////////////////////
    const tenantConfigWxCpRef = ref()
    function handleOpenWxCp() {
      tenantConfigWxCpRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 支付 - 微信支付
    //////////////////////////////////////////////////
    const tenantConfigPayWxRef = ref()
    function handleOpenPayWx() {
      tenantConfigPayWxRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 支付 - 支付宝支付
    //////////////////////////////////////////////////
    const tenantConfigPayAliRef = ref()
    function handleOpenPayAli() {
      tenantConfigPayAliRef.value.handleOpen()
    }

    //////////////////////////////////////////////////
    // 生命周期
    //////////////////////////////////////////////////
    onMounted(() => {})

    return {
      loading,
      state,
      handleDelete,
      tenantConfigWxMpRef,
      handleOpenWxMp,
      tenantConfigWxCpRef,
      handleOpenWxCp,
      tenantConfigPayWxRef,
      handleOpenPayWx,
      tenantConfigPayAliRef,
      handleOpenPayAli
    }
  }
})
